package com.gzhryc.shared_device.bxscn.core;

import com.gzhryc.shared_device.bxscn.core.models.BXSCNExecuteResult;
import com.gzhryc.shared_device.bxscn.core.models.BXSCNLeaseCommand;
import com.gzhryc.shared_device.bxscn.core.models.BXSCNOpenSlotCommand;

public interface IBXSCNNetworkService {

    /**
     * 租借便携式储能电池
     * @param leaseCommand
     * @return
     */
    public BXSCNExecuteResult lease(BXSCNLeaseCommand leaseCommand);

    /**
     * 开启仓室，触发归还
     * @param openSlotCommand
     * @return
     */
    public BXSCNExecuteResult openSlot(BXSCNOpenSlotCommand openSlotCommand);

    /**
     * 强制打开舱室
     * @param deviceSn
     * @param slotNum
     * @return
     */
    public BXSCNExecuteResult forceEjectDevice(String deviceSn, Integer slotNum);

    /**
     * 强制打开所有舱室
     *
     * @param deviceSn 机柜序列号
     * @return
     */
    public BXSCNExecuteResult forceEjectDevice(String deviceSn);


    /**
     * 异步查询设备信息
     *
     * @param deviceSn 机柜序列号
     * @return
     */
    public BXSCNExecuteResult searchDevice(String deviceSn);

    /**
     * 发送任意报文
     *
     * @param deviceSn
     * @param content
     * @return
     */
    public BXSCNExecuteResult sendCmd(String deviceSn, String content);

}
